// // request.ts
// import axios from "./index";
// import qs from "qs";

// export default class Request{
//   /**
//    * get方法
//    * @param {string} url 路径
//    * @param {object} params 参数
//    */
//   static get = (url: string, params?: object) => {
//     return new Promise((resolve, reject) => {
//       axios.get(url, { params: params }).then(res => {
//         resolve(res);
//       }).catch(err => {
//         reject(err);
//       })
//     })
//   }
    
//   static post = (url: string, params?: object) => {
//     return new Promise((resolve, reject) => {
//       axios.post(url, qs.stringify(params)).then(res => {
//         resolve(res);
//       }).catch(err => {
//         reject(err);
//       })
//     })
//   }  
  
// }


import axios from "axios";
import { ElMessage } from "element-plus";
//利用create创建实例
const request=axios.create({
    //基础路径
    baseURL:" http://localhost:8080/",
    timeout:5000//请求超时时间的设置
});
//添加请求与响应拦截器
request.interceptors.request.use((config)=>{
    //config配置对象,headers属性请求头,经常给服务器端携带公共参数
    //返回配置对象
    return config;
});
//配置响应拦截器
request.interceptors.request.use((response)=>{
    //成功回调
    //简化数据
    return response.data;
},(error)=>{
    //失败回调:处理http网络错误
    //存储网络错误信息
    let message='';
    //http状态码
    const status=error.response.status;
    switch(status){
        case 401:
            message='token过期';
            break;
        case 403:
            message='无权访问';
            break;
        case 404:
            message='访问地址错误';
            break;
         case 500:
            message='服务器出现问题';
            break;
        default:
            message='网络错误';
            break;
    }
    //提示错误信息
    ElMessage({
        type:'error',
        message
    });
    return Promise.reject(error);
});

export default request;
